{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "executionInfo": {
     "elapsed": 7745,
     "status": "ok",
     "timestamp": 1649956114018,
     "user": {
      "displayName": "Sam Lu",
      "userId": "15789059763790170725"
     },
     "user_tz": -480
    },
    "id": "ADCfIvzwCn3R"
   },
   "outputs": [],
   "source": [
    "import random\n",
    "import gym\n",
    "import numpy as np\n",
    "from tqdm import tqdm\n",
    "import torch\n",
    "from torch import nn\n",
    "import torch.nn.functional as F\n",
    "import matplotlib.pyplot as plt\n",
    "import rl_utils"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "executionInfo": {
     "elapsed": 11,
     "status": "ok",
     "timestamp": 1649956114020,
     "user": {
      "displayName": "Sam Lu",
      "userId": "15789059763790170725"
     },
     "user_tz": -480
    },
    "id": "7lLH6nSFCn3U"
   },
   "outputs": [],
   "source": [
    "class PolicyNet(torch.nn.Module):\n",
    "    def __init__(self, state_dim, hidden_dim, action_dim, action_bound):\n",
    "        super(PolicyNet, self).__init__()\n",
    "        self.fc1 = torch.nn.Linear(state_dim, hidden_dim)\n",
    "        self.fc2 = torch.nn.Linear(hidden_dim, action_dim)\n",
    "        self.action_bound = action_bound  # action_bound是环境可以接受的动作最大值\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = F.relu(self.fc1(x))\n",
    "        return torch.tanh(self.fc2(x)) * self.action_bound\n",
    "\n",
    "\n",
    "class QValueNet(torch.nn.Module):\n",
    "    def __init__(self, state_dim, hidden_dim, action_dim):\n",
    "        super(QValueNet, self).__init__()\n",
    "        self.fc1 = torch.nn.Linear(state_dim + action_dim, hidden_dim)\n",
    "        self.fc2 = torch.nn.Linear(hidden_dim, hidden_dim)\n",
    "        self.fc_out = torch.nn.Linear(hidden_dim, 1)\n",
    "\n",
    "    def forward(self, x, a):\n",
    "        cat = torch.cat([x, a], dim=1) # 拼接状态和动作\n",
    "        x = F.relu(self.fc1(cat))\n",
    "        x = F.relu(self.fc2(x))\n",
    "        return self.fc_out(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "executionInfo": {
     "elapsed": 4,
     "status": "ok",
     "timestamp": 1649956263275,
     "user": {
      "displayName": "Sam Lu",
      "userId": "15789059763790170725"
     },
     "user_tz": -480
    },
    "id": "0WpTJOW2Cn3W"
   },
   "outputs": [],
   "source": [
    "class DDPG:\n",
    "    ''' DDPG算法 '''\n",
    "    def __init__(self, state_dim, hidden_dim, action_dim, action_bound, sigma, actor_lr, critic_lr, tau, gamma, device):\n",
    "        self.actor = PolicyNet(state_dim, hidden_dim, action_dim, action_bound).to(device)\n",
    "        self.critic = QValueNet(state_dim, hidden_dim, action_dim).to(device)\n",
    "        self.target_actor = PolicyNet(state_dim, hidden_dim, action_dim, action_bound).to(device)\n",
    "        self.target_critic = QValueNet(state_dim, hidden_dim, action_dim).to(device)\n",
    "        # 初始化目标价值网络并设置和价值网络相同的参数\n",
    "        self.target_critic.load_state_dict(self.critic.state_dict())\n",
    "        # 初始化目标策略网络并设置和策略相同的参数\n",
    "        self.target_actor.load_state_dict(self.actor.state_dict())\n",
    "        self.actor_optimizer = torch.optim.Adam(self.actor.parameters(), lr=actor_lr)\n",
    "        self.critic_optimizer = torch.optim.Adam(self.critic.parameters(), lr=critic_lr)\n",
    "        self.gamma = gamma\n",
    "        self.sigma = sigma  # 高斯噪声的标准差,均值直接设为0\n",
    "        self.tau = tau  # 目标网络软更新参数\n",
    "        self.action_dim = action_dim\n",
    "        self.device = device\n",
    "\n",
    "    def take_action(self, state):\n",
    "        state = torch.tensor([state], dtype=torch.float).to(self.device)\n",
    "        action = self.actor(state).item()\n",
    "        # 给动作添加噪声，增加探索\n",
    "        action = action + self.sigma * np.random.randn(self.action_dim)\n",
    "        return action\n",
    "\n",
    "    def soft_update(self, net, target_net):\n",
    "        for param_target, param in zip(target_net.parameters(), net.parameters()):\n",
    "            param_target.data.copy_(param_target.data * (1.0 - self.tau) + param.data * self.tau)\n",
    "\n",
    "    def update(self, transition_dict):\n",
    "        states = torch.tensor(transition_dict['states'], dtype=torch.float).to(self.device)\n",
    "        actions = torch.tensor(transition_dict['actions'], dtype=torch.float).view(-1, 1).to(self.device)\n",
    "        rewards = torch.tensor(transition_dict['rewards'], dtype=torch.float).view(-1, 1).to(self.device)\n",
    "        next_states = torch.tensor(transition_dict['next_states'], dtype=torch.float).to(self.device)\n",
    "        dones = torch.tensor(transition_dict['dones'], dtype=torch.float).view(-1, 1).to(self.device)\n",
    "\n",
    "        next_q_values = self.target_critic(next_states, self.target_actor(next_states))\n",
    "        q_targets = rewards + self.gamma * next_q_values * (1 - dones)\n",
    "        critic_loss = torch.mean(F.mse_loss(self.critic(states, actions), q_targets))\n",
    "        self.critic_optimizer.zero_grad()\n",
    "        critic_loss.backward()\n",
    "        self.critic_optimizer.step()\n",
    "\n",
    "        actor_loss = -torch.mean(self.critic(states, self.actor(states)))\n",
    "        self.actor_optimizer.zero_grad()\n",
    "        actor_loss.backward()\n",
    "        self.actor_optimizer.step()\n",
    "\n",
    "        self.soft_update(self.actor, self.target_actor)  # 软更新策略网络\n",
    "        self.soft_update(self.critic, self.target_critic)  # 软更新价值网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "executionInfo": {
     "elapsed": 142752,
     "status": "ok",
     "timestamp": 1649956407730,
     "user": {
      "displayName": "Sam Lu",
      "userId": "15789059763790170725"
     },
     "user_tz": -480
    },
    "id": "-OjAWgKJCn3X",
    "outputId": "d2b245bd-7d68-4776-bf18-2c1f54a0ba22"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Iteration 0: 100%|██████████| 20/20 [00:05<00:00,  3.34it/s, episode=20, return=-1216.981]\n",
      "Iteration 1: 100%|██████████| 20/20 [00:07<00:00,  2.52it/s, episode=40, return=-952.311] \n",
      "Iteration 2: 100%|██████████| 20/20 [00:07<00:00,  2.51it/s, episode=60, return=-778.256] \n",
      "Iteration 3: 100%|██████████| 20/20 [00:07<00:00,  2.52it/s, episode=80, return=-451.334]\n",
      "Iteration 4: 100%|██████████| 20/20 [00:08<00:00,  2.50it/s, episode=100, return=-263.615]\n",
      "Iteration 5: 100%|██████████| 20/20 [00:08<00:00,  2.49it/s, episode=120, return=-180.547]\n",
      "Iteration 6: 100%|██████████| 20/20 [00:07<00:00,  2.50it/s, episode=140, return=-253.329]\n",
      "Iteration 7: 100%|██████████| 20/20 [00:08<00:00,  2.49it/s, episode=160, return=-208.672]\n",
      "Iteration 8: 100%|██████████| 20/20 [00:08<00:00,  2.50it/s, episode=180, return=-203.519]\n",
      "Iteration 9: 100%|██████████| 20/20 [00:07<00:00,  2.58it/s, episode=200, return=-196.747]\n"
     ]
    }
   ],
   "source": [
    "actor_lr = 3e-4\n",
    "critic_lr = 3e-3\n",
    "num_episodes = 200\n",
    "hidden_dim = 64\n",
    "gamma = 0.98\n",
    "tau = 0.005  # 软更新参数\n",
    "buffer_size = 10000\n",
    "minimal_size = 1000\n",
    "batch_size = 64\n",
    "sigma = 0.01  # 高斯噪声标准差\n",
    "device = torch.device(\"cuda\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "\n",
    "env_name = 'Pendulum-v0'\n",
    "env = gym.make(env_name)\n",
    "random.seed(0)\n",
    "np.random.seed(0)\n",
    "env.seed(0)\n",
    "torch.manual_seed(0)\n",
    "replay_buffer = rl_utils.ReplayBuffer(buffer_size)\n",
    "state_dim = env.observation_space.shape[0]\n",
    "action_dim = env.action_space.shape[0]\n",
    "action_bound = env.action_space.high[0]  # 动作最大值\n",
    "agent = DDPG(state_dim, hidden_dim, action_dim, action_bound, sigma, actor_lr, critic_lr, tau, gamma, device)\n",
    "\n",
    "return_list = rl_utils.train_off_policy_agent(env, agent, num_episodes, replay_buffer, minimal_size, batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 573
    },
    "executionInfo": {
     "elapsed": 565,
     "status": "ok",
     "timestamp": 1649956408280,
     "user": {
      "displayName": "Sam Lu",
      "userId": "15789059763790170725"
     },
     "user_tz": -480
    },
    "id": "LtGxw6PBCn3Y",
    "outputId": "45eab045-71ae-4055-b9dd-e3930449eddd"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "episodes_list = list(range(len(return_list)))\n",
    "plt.plot(episodes_list, return_list)\n",
    "plt.xlabel('Episodes')\n",
    "plt.ylabel('Returns')\n",
    "plt.title('DDPG on {}'.format(env_name))\n",
    "plt.show()\n",
    "\n",
    "mv_return = rl_utils.moving_average(return_list, 9)\n",
    "plt.plot(episodes_list, mv_return)\n",
    "plt.xlabel('Episodes')\n",
    "plt.ylabel('Returns')\n",
    "plt.title('DDPG on {}'.format(env_name))\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "name": "第13章-DDPG算法.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3.8.10 ('py3env')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  },
  "vscode": {
   "interpreter": {
    "hash": "9439bc617e75650e9835dbf1d7ea84c59731a0e19d11f630c02c91d9018989c3"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
